home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / var / lib / dpkg / info / ssl-cert.postinst < prev    next >
Encoding:
Text File  |  2010-12-12  |  2.1 KB  |  63 lines

  1. #!/bin/sh -e
  2.  
  3. . /usr/share/debconf/confmodule
  4.  
  5. # Create the ssl-cert system group for snakeoil ownership:
  6. if ! getent group ssl-cert >/dev/null; then
  7.     addgroup --quiet --system --force-badname ssl-cert
  8. fi
  9.  
  10. check_vuln_version () {
  11.     if dpkg --compare-versions "$2" ge "$1" && dpkg --compare-versions "$2" lt $3 ; then
  12.         check_key="yes"
  13.     fi
  14. }
  15.  
  16. # Check if the generated snakeoil key/cert has been generated 
  17. # from a vulnerable openssl version and replace it if necessary.
  18. if [ -x /usr/bin/openssl-vulnkey -a -n "$2" ] ; then
  19.     check_key=""
  20.     check_vuln_version 0               "$2" 1.0.13-0ubuntu0.7.04.1
  21.     check_vuln_version 1.0.13-1        "$2" 1.0.14-0ubuntu0.7.10.1
  22.     check_vuln_version 1.0.14-0ubuntu1 "$2" 1.0.14-0ubuntu2.1
  23.     check_vuln_version 1.0.15          "$2" 1.0.19ubuntu1
  24.  
  25.     CERT="/etc/ssl/certs/ssl-cert-snakeoil.pem"
  26.     KEY="/etc/ssl/private/ssl-cert-snakeoil.key"
  27.     # check if the cert and key file exist,
  28.     # the issuer and subject are the same (self signed cert)
  29.     # and the private key is vulnerable
  30.     if [ "${check_key}" = "yes" -a \
  31.          -e "${CERT}" -a -e "${KEY}" -a \
  32.          "$(openssl x509 -issuer -noout < ${CERT} | sed 's/issuer= //')" = "$(openssl x509 -subject -noout < ${CERT} | sed 's/subject= //')" ]; then
  33.             if ! openssl-vulnkey -q ${KEY}; then
  34.             db_version 2.0
  35.                 db_input critical make-ssl-cert/vulnerable_prng || true
  36.                 db_go
  37.             if [ ! -e ${CERT}.broken ] && [ ! -e ${KEY}.broken ] ; then
  38.                 mv ${CERT} ${CERT}.broken
  39.                 mv ${KEY} ${KEY}.broken
  40.             fi
  41.             make-ssl-cert generate-default-snakeoil --force-overwrite
  42.         fi
  43.     fi
  44. fi
  45.  
  46. # no need to perform any check. If the certificates are there
  47. # it will exit 0.
  48. make-ssl-cert generate-default-snakeoil
  49.  
  50. # allow group ssl-cert to access /etc/ssl/private
  51. if ! dpkg-statoverride --list /etc/ssl/private >/dev/null 2>&1
  52. then
  53.     dpkg-statoverride --update --add root ssl-cert 710 /etc/ssl/private
  54. fi
  55.  
  56. # If we're upgrading from an older version, fix the unreadable key:
  57. if dpkg --compare-versions "$2" lt 1.0.12; then
  58.     chgrp ssl-cert /etc/ssl/private/ssl-cert-snakeoil.key
  59.     chmod g+r /etc/ssl/private/ssl-cert-snakeoil.key
  60. fi
  61.  
  62.  
  63.